package com.cloud.pay.dto;

import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * 支付配置更新参数
 */
@Data
public class PayConfigUpdateParamDTO {
    /**
     * ID
     */
    @NotNull(message = "ID不能为空")
    private Integer id;

    /**
     * 应用ID（长度不能超过32）
     */
    @NotEmpty(message = "应用ID不能为空")
    @Length(max = 32, message = "应用ID（长度不能超过32）")
    private String appId;

    /**
     * 应用私钥（长度不能超过32）
     */
    @NotEmpty(message = "应用私钥不能为空")
    @Length(max = 32, message = "应用私钥（长度不能超过32）")
    private String appSecret;

    /**
     * API私钥（长度不能超过32）
     */
    @NotEmpty(message = "API私钥不能为空")
    @Length(max = 32, message = "API私钥（长度不能超过32）")
    private String apiSecretkey;

    /**
     * 公钥（长度不能超过250）
     */
    @Length(max = 250, message = "公钥（长度不能超过250）")
    private String publicKey;

    /**
     * 私钥（长度不能超过250）
     */
    @Length(max = 250, message = "私钥（长度不能超过250）")
    private String privateKey;

    /**
     * 商户ID（长度不能超过32）
     */
    @Length(max = 32, message = "商户ID（长度不能超过32）")
    private String accountId;

    /**
     * 支付渠道（微信1，支付宝2）
     */
    @NotEmpty(message = "支付渠道不能为空")
    @Range(min = 1, max = 2, message = "支付渠道（微信1，支付宝2）")
    private Integer channel;

    /**
     * 状态（停用0，启用1）
     */
    @NotEmpty(message = "状态不能为空")
    @Range(min = 0, max = 1, message = "状态（停用0，启用1）")
    private Integer status;
}
